WIP: make printing output easier (approach 1) #3797
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I'm looking if we can make printing output easier, and without linters warning about all the unhandled errors for
fmt.FPrintXX()
.One approach could be to use Cobra's print functions, which are convenient, but the (big!) downside is that we would then have to pass both
cobra.Command
andcommand.Cli
everywhere.Looking at our code, it looks like the intent is to separate functionality from cobra (cobra "triggers" the command, but the command itself is agnostic to being called from cobra).
The other approach is to
dockerCli.Printf(...)
streams
package to have utilities, but note that while bothdockerCli.Out()
anddockerCli.Err()
are anio.Writer
, onlydockerCli.Out()
is astreams.Out
, so we would have to changedockerCli.Err()
to also be astreams.Out
. Maybe there was a reason for not doing so (streams.Out
can detect if a terminal is attached, maybe that's not possible forSTDERR
, which (unlikeSTDOUT
is not buffered? not sure if that makes a difference)- Description for the changelog
- A picture of a cute animal (not mandatory but encouraged)